package LeetCode.leetcode;

import java.util.PriorityQueue;

/**
 * @Auther: leiwenkang
 * @Date: 2020/8/9 12:24
 * @Description:
 */
public class Test703数据流中的第K大元素 {
    public static void main(String[] args) {
        int[] nums = {4,5,8,2};
        Test703数据流中的第K大元素 test = new Test703数据流中的第K大元素(3, nums);
        System.out.println(test.add(10));
    }

    private PriorityQueue<Integer> queue;
    private int capacity;

    public Test703数据流中的第K大元素(int k, int[] nums) {
        this.capacity = k;
        queue = new PriorityQueue<>(k);
        for (int num : nums) {
            add(num);
        }

    }

    public int add(int val) {
        if (queue.size() < capacity) {
            queue.add(val);
        } else if (val > queue.peek()) {
            queue.poll();
            queue.add(val);
        }
        return queue.peek();
    }
}